Workload scheduling methods are commonly used in data processing systems for controlling the execution of different work units, for example jobs in a batch processing.
Several types of workload schedulers have been proposed in the prior art to automate the process of submitting the execution of large quantities of jobs. An example of a workload scheduler is the “Tivoli Workload Scheduler” by IBM Corporation.
A workload scheduler is a software component that submits work units, e.g. jobs, for execution according to a predefined sequence, also known as schedule or execution plan; the execution plan establishes a flow of execution of the different jobs according to several factors, such as for example temporal constraints (e.g., date, time, day of the week) and dependencies (such as completion of preceding jobs).
The execution of the jobs requires several hardware and/or software resources, such as data processing apparatuses—personal computers, workstations, server machines—operating systems, software applications, databases, storage devices, output devices and the like. System resources that are to be made available to the jobs are typically managed by another software component, known as the workload manager.
An aspect of paramount importance in scheduling workloads is the knowledge of the duration of the different operations to be performed, i.e. of the different work units, e.g. the different jobs. Knowledge of the jobs' durations is necessary for building the execution plan, because the jobs' durations are used to determine when the execution of the generic job has to start. Jobs' durations are also exploited by the workload scheduler to control the correct execution of the jobs and to detect possible abnormal conditions, based on the fact that one or more jobs run(s) longer than the expected (planned) duration(s): in these cases, the workload scheduler may issue alert messages, for example for informing a user of the delay incurred, or used by monitoring software tools, like Netwiev and IBM Tivoli Monitoring by IBM corporation.
Typically, the jobs' planned durations are estimated adopting predetermined prediction methods. The estimation should be as accurate as possible, since a bad prediction of the jobs' durations may cause the workload scheduler to incorrectly declare an abnormal condition in respect of one or more jobs, and issue wrong alert messages.
Some known workload schedulers, like the cited Tivoli Workload Scheduler, implement an adaptive duration estimation scheme for adjusting the jobs' planned durations. Such an adaptive duration estimation scheme calls for applying a “smoothing” factor to the measured, actual duration of a generic job, and to update the planned job duration according to the “smoothed” actual duration. If however the actual job duration differs from the planned duration significantly, i.e., the duration difference exceeds a predetermined limit, the planned duration is not updated.